home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / tos_updt / fmcity / palcom / auto / script / autosgn.mx < prev    next >
Text File  |  1995-02-24  |  30KB  |  955 lines

  1. //--------------------------------------------------------------------------//
  2. //                        PALCOM V2.1 L10                        //
  3. //                   自動通信:オンラインサインアップ                        //
  4. //                                                                            //
  5. //                                        CopyRight(C) 1994/11/12                //
  6. //                                FUJITSU PERSONAL COMPUTER SYSTEMS LIMITED    //
  7. //                                        written by C-cube Soft T.Nakamura    //
  8. //--------------------------------------------------------------------------//
  9. event    @OPEN.EXTERN {
  10.     sys.pushCursor( 81 );
  11.  
  12.     sys.global( $setDataList );
  13.     sys.global( $sName );
  14.     $setDataList = #FALSE;
  15.  
  16.     //---   データの読み込み   ---//
  17.     $fName = str.join([$$DIR.STANDARD, "BBS\\AUTOTRAN.ENV"], "" );
  18.     $sName = str.join([$$DIR.STANDARD, "BBS\\AUTOSGN.DAT"], "" );
  19.     $dataList = local.readEnvFile( $fName );
  20.  
  21.     //---   登録データファイルがある場合は、それを読み込む   ---//
  22.     if( file.exist( $sName ) == #TRUE ) {
  23.         $setDataList = Auto.readEditData( $sName );
  24.     }
  25.  
  26.     //---   設定ダイアログ   ---//
  27.     loop {
  28.         $ret = Auto.sgnEdit( $dataList );
  29.         if( $ret == 1 ) {                            // 設定
  30.             Auto.sgnSave( $fName, $dataList );
  31.             exit;
  32.         } elif( $ret == 2 ) {                        // 実行
  33.             if( $setDataList == #FALSE ) {
  34.                 $saveXsize = dialog.getDefaultXSize();
  35.                 dialog.setDefaultXSize( 328 );
  36.                 sys.pushCursor( 80 );
  37.                 $ret = dialog.ask([
  38.                         "━━━━━━  オンラインサインアップ  ━━━━━━",
  39.                         "",
  40.                         "  登録情報が設定されていないため、手動での登録に  ",
  41.                         "なります。                                        ",
  42.                         "  自動でオンラインサインアップを行いたい場合には、",
  43.                         "「中止」を選択し「登録情報の設定」を行って下さい。",
  44.                         ""], ["中止","続行"] );
  45.                 sys.popCursor();
  46.                 dialog.setDefaultXSize( $saveXsize );
  47.                 if( $ret == 0 ) {
  48.                     continue;
  49.                 }
  50.             }
  51.             Auto.sgnSave( $fName, $dataList );
  52.             $ret = Auto.sgnExec( $fName, $dataList );
  53.             if( data.getType( $ret ) == #LIST ) {
  54.                 $id = list.getNth( $ret, 1 );
  55.                 $pw = list.getNth( $ret, 2 );
  56.                 $saveXsize = dialog.getDefaultXSize();
  57.                 dialog.setDefaultXSize( 328 );
  58.                 sys.pushCursor( 80 );
  59.                 $btn = dialog.ask([
  60.                         "━━━━━━  オンラインサインアップ  ━━━━━━",
  61.                         "",
  62.                         "    オンラインサインアップを正常に終了しました。  ",
  63.                         "",
  64.                         "  以下の利用者IDと仮パスワードが発行されました。",
  65.                         "  忘れないように控えておいてください。            ",
  66.                         "",
  67.                         str.join(["             利用者ID  : ", $id], "" ),
  68.                         str.join(["             仮パスワード: ", $pw], "" ),
  69.                         "━━━━━━━━━━━━━━━━━━━━━━━━━",
  70.                         "",
  71.                         "   発行された「利用者ID」及び「仮パスワード」を ",
  72.                         " 自動通信の設定に反映させますか?                 ",
  73.                         ""], ["いいえ","はい"] );
  74.                 sys.popCursor();
  75.                 dialog.setDefaultXSize( $saveXsize );
  76.                 if( $btn == 1 ) {
  77.                     list.delNth( $dataList, 22 );
  78.                     list.putNth( $dataList, 21, $id );
  79.                     list.delNth( $dataList, 23 );
  80.                     list.putNth( $dataList, 22, $pw );
  81.                     Auto.sgnSave( $fName, $dataList );
  82.                 }
  83.             } elif( $ret != #TRUE ) {
  84.                 $saveXsize = dialog.getDefaultXSize();
  85.                 dialog.setDefaultXSize( 328 );
  86.                 sys.pushCursor( 80 );
  87.                 $btn = dialog.ask([
  88.                         "━━━━━━  オンラインサインアップ  ━━━━━━",
  89.                         "",
  90.                         "       オンラインサインアップを中断しました。     ",
  91.                         ""],["確認"] );
  92.                 sys.popCursor();
  93.                 dialog.setDefaultXSize( $saveXsize );
  94.             }
  95.         } else {
  96.             exit;
  97.         }
  98.     }
  99.     sys.popCursor();
  100.     return;
  101. }
  102. event    @CLOSE.EXTERN {
  103.     if( $OpenFlg == #TRUE ) {
  104.         local.comClose();
  105.     }
  106.     if( dialog.check() == #TRUE ) {
  107.         dialog.close();
  108.         sys.popCursor();
  109.     }
  110.     if( $OpenFlg != #UNKNOWN ) {
  111.         sys.local( $OpenFlg );
  112.     }
  113.     event.unmask( @DISCONNECT );
  114.     event.unmask( @CONNECT );
  115.     sys.startIntRec();
  116.  
  117.     sys.local( $setDataList );
  118.     sys.local( $sName );
  119.     return;
  120. }
  121. event    @ERROR {
  122.     if( dialog.check() == #TRUE ) {
  123.         dislog.close();
  124.     }
  125.     sys.startIntRec();
  126.     sys.changeCursor( 80 );
  127. }
  128.  
  129.  
  130.  
  131. //------------------------------------------------//
  132. //---   オンラインサインアップ編集ダイアログ   ---//
  133. //------------------------------------------------//
  134. function    Auto.sgnEdit(
  135.     $dataList )                                    // 設定情報リスト
  136. {
  137.     //---   データベース部分の読み込み   ---//
  138.     if( list.size( list.getNth( $dataList, 14 )) == 0 ) {
  139.         $portList1 = [];
  140.         $portList2 = [];
  141.         $pulseList = [];
  142.         foreach( $a, [-1, 0, 1, 2, 3, 4] ) {
  143.             $list = gdb.getPortData( $a );
  144.             list.putLast( $portList1, list.getNth( $list, 1 ));
  145.             $list2 = list.getNth( $list, 2 );
  146.             list.delLast( $list2 );
  147.             list.delLast( $list2 );
  148.             list.putLast( $portList2, $list2 );
  149.             list.putLast( $pulseList, gdb.getPulseEnable( $a ));
  150.         }
  151.         list.delNth( $dataList, 14 );
  152.         list.putNth( $dataList, 13, $portList1 );
  153.         list.delNth( $dataList, 15 );
  154.         list.putNth( $dataList, 14, $portList2 );
  155.         list.delNth( $dataList, 16 );
  156.         list.putNth( $dataList, 15, $pulseList );
  157.     }
  158.     $portData = list.getNth( list.getNth( $dataList, 15 ),
  159.                                             list.getNth( $dataList, 1 ) + 2 );
  160.  
  161.     //---   ボタンの設定   ---//
  162.     $setBtn  = dialog.makeButton( 1, "設定",                   0,      0 );
  163.     $canBtn  = dialog.makeButton( 1, "終了",                   0, 0x801D );
  164.     $exeBtn  = dialog.makeButton( 1, "実行",                   0, 0x8012 );
  165.     $edtBtn  = dialog.makeButton( 1, "登録情報の設定",         0,      0 );
  166.     $delBtn  = dialog.makeButton( 1, "登録情報の削除",         0, 0x007F );
  167.     $modmBtn = dialog.makeButton( 1, "   接続モデムの設定   ", 0,      0 );
  168.     $apBtn   = dialog.makeButton( 1, "アクセスポイントの設定", 0,      0 );
  169.  
  170.     //---   シリアルナンバーの設定   ---//
  171.     $serial    = [list.getNth( $dataList, 27 )];
  172.  
  173.     //---   アグリーメントナンバーの設定   ---//
  174.     $agreement = [list.getNth( $dataList, 28 )];
  175.  
  176.     //---   回線種別の設定   ---//
  177.     if( list.getNth( $portData, 3 ) == 2 ) {
  178.         $line    = [2];
  179.         $lineSub =  2;
  180.     } else {
  181.         $line    = [1];
  182.         $lineSub =  1;
  183.     }
  184.  
  185.     //---   ダイアル補助の設定   ---//
  186.     $prefix = [list.getNth( $portData, 4 )];
  187.  
  188.     //---   自局市外局番の設定   ---//
  189.     $cityNo = [list.getNth( $dataList, 24 )];
  190.  
  191.     //---   接続ポートの設定   ---//
  192.     $portNo      = list.getNth( $dataList, 1 );
  193.     $portStrList = ["内蔵", "0","1","2","3","4"];
  194.     $portStr     = [];
  195.     $portList    = [];
  196.     $port        = [2];
  197.     $i           = 1;
  198.     foreach( $a, [-1, 0, 1, 2, 3, 4] ) {
  199.         if( com.checkPort( $a ) == #TRUE ) {
  200.             list.putLast( $portList, $a );
  201.             list.putLast( $portStr, list.getNth( $portStrList, $i ));
  202.             if( $portNo == $i - 2 ) {
  203.                 $port = [$i];
  204.             }
  205.         }
  206.         $i = $i + 1;
  207.     }
  208.     $portSub = list.get1st( $port );
  209.  
  210.     //---   デフォルトアクセスポイントの設定   ---//
  211.     $defAP    = list.getNth( $dataList, 25 );
  212.     $defAPstr = [""];
  213.  
  214.     //---   リダイアル回数の設定   ---//
  215.     $redial   = [list.getNth( $dataList, 29 )];
  216.  
  217.     //---   リダイアル待ち時間の設定   ---//
  218.     $interval = [list.getNth( $dataList, 30 )];
  219.  
  220.     //---   ダイアログリストの設定   ---//
  221.     $dialogList = [ "オンラインサインアップ", 0, -1, -1, $exeBtn,
  222.             ["シリアルナンバー   :", 1025, [8,0], [""],    $serial],
  223.             ["アグリーメントナンバー:", 1025, [8,0], [""], $agreement],
  224.             ["回線種別    :", 1027, [0],   ["ダイアル","プッシュホン"],$line],
  225.             ["",               1024, [0],   [""],                        [""]],
  226.             ["ダイアル補助:", 1025, [8,0], [""],                     $prefix],
  227.             ["自局市外局番:", 1025, [8,0], [""],                     $cityNo],
  228.             ["接続ポート  :", 1027, [0],   $portStr,                   $port],
  229.             ["",           $modmBtn, [0],   [""],                        [""]],
  230.             ["接続アクセスポイント",
  231.                                1024, [0],   [""],                        [""]],
  232.             ["  ",               1024, [0],   $defAPstr,                   [""]],
  233.             ["",             $apBtn, [0],   [""],                        [""]],
  234.             ["",               1024, [0],   [""],                        [""]],
  235.             ["                                    リダイアル回数 ", 1031, [""],
  236.                                    [" 回",  "99", "000", "1", "0"],   $redial],
  237.             ["                                              間隔 ", 1031, [""],
  238.                                    [" 秒", "999", "000", "1", "0"], $interval],
  239.             ["",            $canBtn, [0],   [""],                        [""]],
  240.             ["",            $setBtn, [0],   [""],                        [""]],
  241.             ["",            $exeBtn, [0],   [""],                        [""]],
  242.             ["",            $edtBtn, [0],   [""],                        [""]],
  243.             ["",            $delBtn, [0],   [""],                        [""]]
  244.     ];
  245.  
  246.     $portChange = #FALSE;
  247.     loop {
  248.         //---   デフォルトアクセスポイント名の設定   ---//
  249.         list.del1st( $defAPstr );
  250.         if(( $str = AUTO.getApName( $defAP )) == "" ) {
  251.             $defAP = 0;
  252.             list.put1st( $defAPstr, "アクセスポイントが登録されていません" );
  253.         } else {
  254.             list.put1st( $defAPstr, $str );
  255.         }
  256.  
  257.         //---   ダイアログの表示   ---//
  258.         sys.pushCursor( 80 );
  259.         $saveXsize = dialog.getDefaultXSize();
  260.         dialog.setDefaultXSize( 410 );
  261.         dialog.open( $dialogList );
  262.         dialog.setDefaultXSize( $saveXsize );
  263.         sys.popCursor();
  264.  
  265.         //---   設定値の保存   ---//
  266.         list.del1st( $serial   );
  267.         list.put1st( $serial,   list.get1st( list.getNth($$DIALOG.RETURN, 2)));
  268.         list.del1st( $agreement);
  269.         list.put1st( $agreement,list.get1st( list.getNth($$DIALOG.RETURN, 3)));
  270.         list.del1st( $line     );
  271.         list.put1st( $line    , list.get1st( list.getNth($$DIALOG.RETURN, 4)));
  272.         list.del1st( $prefix   );
  273.         list.put1st( $prefix,   list.get1st( list.getNth($$DIALOG.RETURN, 6)));
  274.         list.del1st( $cityNo );
  275.         list.put1st( $cityNo,   list.get1st( list.getNth($$DIALOG.RETURN, 7)));
  276.         list.del1st( $port     );
  277.         list.put1st( $port,     list.get1st( list.getNth($$DIALOG.RETURN, 8)));
  278.         list.del1st( $redial   );
  279.         list.put1st( $redial,   list.get1st( list.getNth($$DIALOG.RETURN,12)));
  280.         list.del1st( $interval );
  281.         list.put1st( $interval, list.get1st( list.getNth($$DIALOG.RETURN,13)));
  282.  
  283.         //---   回線種別の取り出し   ---//
  284.         $portData = list.getNth( list.getNth( $dataList, 15 ),
  285.                         list.getNth( $portList, list.get1st( $port )) + 2 );
  286.         $pulseFlg = list.getNth( list.getNth( $dataList, 16 ),
  287.                         list.getNth( $portList, list.get1st( $port )) + 2 );
  288.         if( list.get1st( $line ) == 1 ) {
  289.             if( $pulseFlg == #TRUE ) {
  290.                 $lineSubSub = 1;
  291.             } else {
  292.                 $lineSubSub = 0;
  293.             }
  294.         } else {
  295.             $lineSubSub = 2;
  296.         }
  297.  
  298.         //---   回線種別が変更になった場合   ---//
  299.         //---   パルスの指定を変更しておく   ---//
  300.         if( list.get1st( $line ) != $lineSub ) {
  301.             list.delNth( $portData, 3 );
  302.             list.putNth( $portData, 2, $lineSubSub );
  303.             $lineSub = list.get1st( $line );
  304.         }
  305.  
  306.         //---   ポート番号が変更になった場合   ---//
  307.         //---   回線種別の設定を変更しておく   ---//
  308.         if( list.get1st( $port ) != $portSub ) {
  309.             list.delNth( $portData, 3 );
  310.             list.putNth( $portData, 2, $lineSubSub );
  311.             $portSub    = list.get1st( $port );
  312.             $portChange = #TRUE;
  313.         }
  314.  
  315.         //---   各種ボタン処理   ---//
  316.         $btnNo = list.get1st( $$DIALOG.RETURN );
  317.         table( $btnNo ) {
  318.             $delBtn        {
  319.                 if( $setDataList == #FALSE ) {
  320.                     sys.pushCursor( 80 );
  321.                     dialog.ask([
  322.                         "━━━━━━━ 登録情報の削除  ━━━━━━━",
  323.                         "",
  324.                         "        登録情報が設定されていません。        ",
  325.                         ""],["確認"] );
  326.                     sys.popCursor();
  327.                     continue;
  328.                 }
  329.                 sys.pushCursor( 80 );
  330.                 if( dialog.ask([
  331.                     "━━━━━━━ 登録情報の削除  ━━━━━━━",
  332.                     "",
  333.                     "             登録情報を削除します。           ",
  334.                     ""],["取消","実行"] ) == 0 ) {
  335.                     sys.popCursor();
  336.                     continue;
  337.                 }
  338.                 sys.popCursor();
  339.                 if( data.getType( $setDataList ) == #LIST ) {
  340.                     $setDataList = #FALSE;
  341.                 }
  342.                 if( file.exist( $sName ) == #TRUE ) {
  343.                     file.delete( $sName );
  344.                 }
  345.             }
  346.             $edtBtn        {
  347.                 $$USER.DEFINED.9 = $setDataList;
  348.                 $path=str.join([$$DIR.STANDARD,"AUTO\\SCRIPT\\SGNEDIT.MX"],"");
  349.                 script.openExtern( $path, #FALSE, [] );
  350.                 if( data.getType( $$USER.DEFINED.9 ) == #LIST ) {
  351.                     $setDataList = $$USER.DEFINED.9;
  352.                 }
  353.             }
  354.             $modmBtn    {
  355.                 Auto.updateConnectData( $dataList,
  356.                                 list.get1st( $serial    ),
  357.                                 list.get1st( $agreement ),
  358.                                 list.get1st( $prefix    ),
  359.                                 list.get1st( $cityNo    ),
  360.                                 list.getNth( $portList, list.get1st( $port )),
  361.                                 $defAP,
  362.                                 list.get1st( $redial    ),
  363.                                 list.get1st( $interval  ));
  364.                 $$USER.DEFINED.9 = 1;
  365.                 $$USER.DEFINED.3 = $dataList;
  366.                 $path = str.join([$$DIR.STANDARD, "SETUP\\EV_MODEM.MX"], "" );
  367.                 script.openExtern( $path, #FALSE, [] );
  368.                 $portChange = #FALSE;
  369.             }
  370.             $apBtn        {
  371.                 $$USER.DEFINED.9 = $defAP;
  372.                 $path = str.join([$$DIR.STANDARD,"AUTO\\SCRIPT\\APSEL.MX"],"");
  373.                 script.openExtern( $path, #FALSE, [] );
  374.                 if( AUTO.getDialogReturn() == 1 ) {
  375.                     $defAP = $$USER.DEFINED.9;
  376.                 }
  377.             }
  378.         }
  379.  
  380.         //---   設定及び実行の場合、アクセスポイントが   ---//
  381.         //---             設定されていなくてはならない   ---//
  382.         if(( $btnNo == $setBtn )||( $btnNo == $exeBtn )) {
  383.             if( $defAP == 0 ) {
  384.                 sys.pushCursor( 80 );
  385.                 dialog.ask([
  386.                     "━━━━━ オンラインサインアップ  ━━━━━",
  387.                     "",
  388.                     "     アクセスポイントが設定されていません。   ",
  389.                     ""],["確認"] );
  390.                 sys.popCursor();
  391.                 continue;
  392.             }
  393.  
  394.             //---   アクセスポイントとボーレートの確認   ---//
  395.             $path = str.join([$$DIR.STANDARD, "PUBLIC\\APUSER.TRD"],"" );
  396.             if( file.exist( $path ) == #TRUE ) {
  397.                 $trdId = trd.init( 9120, -1 );
  398.                 trd.load( $trdId, $path );
  399.                 $apList = list.get1st( AUTO.getAPlist( $trdId, $defAP ));
  400.                 $apKind = list.getNth( list.getNth( $apList, 7 ), 2 );
  401.                 $mdData = list.getNth( list.getNth( $dataList, 15 ),
  402.                             list.getNth( $portList, list.get1st( $port ))+2 );
  403.                 if(( list.getNth( $mdData, 1 ) == "" )&&
  404.                    ( list.getNth( $mdData, 2 ) == "" )) {
  405.                     sys.pushCursor( 80 );
  406.                     dialog.ask([
  407.                         "━━━━━ オンラインサインアップ  ━━━━━",
  408.                         "",
  409.                         "        接続モデムが設定されていません。      ",
  410.                         ""],["確認"] );
  411.                     sys.popCursor();
  412.                     continue;
  413.                 }
  414.                 $mdData = gdb.getModemData3( list.getNth( $mdData, 1 ),
  415.                                              list.getNth( $mdData, 2 ));
  416.                 $comBps = list.getNth( $mdData, 3 );
  417.                 trd.end( $trdId );
  418.                 $flg = #FALSE;
  419.                 table( $apKind ) {
  420.                     1    { if( $comBps < 0x01 ) { $flg = #TRUE; }}
  421.                     2    { if( $comBps < 0x04 ) { $flg = #TRUE; }}
  422.                     3    { if( $comBps < 0x08 ) { $flg = #TRUE; }}
  423.                     4    { if( $comBps < 0x08 ) { $flg = #TRUE; }}
  424.                     5    { if( $comBps < 0x40 ) { $flg = #TRUE; }}
  425.                     6    { if( $comBps < 0x40 ) { $flg = #TRUE; }}
  426.                     7    { if( $comBps < 0x40 ) { $flg = #TRUE; }}
  427.                     8    { if( $comBps < 0x40 ) { $flg = #TRUE; }}
  428.                 }
  429.                 if( $flg == #TRUE ) {
  430.                     $saveXsize = dialog.getDefaultXSize();
  431.                     dialog.setDefaultXSize( 360 );
  432.                     sys.pushCursor( 80 );
  433.                     $ret = dialog.ask([
  434.                     "━━━━━━━   オンラインサインアップ   ━━━━━━━",
  435.                     "",
  436.                     "    指定のアクセスポイントは、設定されているモデムの、  ",
  437.                     "  接続可能な通信速度を超えています。    ",
  438.                     ""],["アクセスポイントの設定を行う","編集に戻る","無視"] );
  439.                     sys.popCursor();
  440.                     dialog.setDefaultXSize( $saveXsize );
  441.                     if( $ret == 1 ) {
  442.                         continue;
  443.                     }
  444.                     if( $ret == 0 ) {
  445.                         $$USER.DEFINED.9 = $defAP;
  446.                         $path = str.join([$$DIR.STANDARD,
  447.                                                 "AUTO\\SCRIPT\\APSEL.MX"],"");
  448.                         script.openExtern( $path, #FALSE, [] );
  449.                         if( AUTO.getDialogReturn() == 1 ) {
  450.                             $defAP = $$USER.DEFINED.9;
  451.                         }
  452.                         continue;
  453.                     }
  454.                 }
  455.             }
  456.  
  457.             //---   データの一時保存   ---//
  458.             Auto.updateConnectData( $dataList,
  459.                                 list.get1st( $serial    ),
  460.                                 list.get1st( $agreement ),
  461.                                 list.get1st( $prefix    ),
  462.                                 list.get1st( $cityNo    ),
  463.                                 list.getNth( $portList, list.get1st( $port )),
  464.                                 $defAP,
  465.                                 list.get1st( $redial    ),
  466.                                 list.get1st( $interval  ));
  467.  
  468.             //---   初期化コマンド1~3の変更の確認   ---//
  469.             if(( $portChange == #TRUE )&&
  470.                ( list.getNth( $dataList, 26 ) == #TRUE )) {
  471.                 $saveXsize = dialog.getDefaultXSize();
  472.                 dialog.setDefaultXSize( 372 );
  473.                 sys.pushCursor( 80 );
  474.                 $ret = dialog.ask([
  475.                 "━━━━━━━━  オンラインサインアップ  ━━━━━━━━",
  476.                 "",
  477.                 "  接続ポートを変更した場合、初期化1~3に設定されている ",
  478.                 "コマンドを、接続されているモデムにあわせる必要があります。",
  479.                 ""],["モデムの設定を行う","編集に戻る","無視"] );
  480.                 sys.popCursor();
  481.                 dialog.setDefaultXSize( $saveXsize );
  482.                 if( $ret == 1 ) {
  483.                     continue;
  484.                 }
  485.                 if( $ret == 0 ) {
  486.                     $$USER.DEFINED.3 = $dataList;
  487.                     $$USER.DEFINED.9 = 1;
  488.                     $path = str.join([$$DIR.STANDARD,"SETUP\\EV_MODEM.MX"],"");
  489.                     script.openExtern( $path, #FALSE, [] );
  490.                     continue;
  491.                 }
  492.             }
  493.             exit;
  494.         } elif( $btnNo == $canBtn ) {
  495.             exit;
  496.         }
  497.     }
  498.  
  499.     //---   「設定」及び「実行」の場合は設定リストを更新する   ---//
  500.     if(( $btnNo == $setBtn )||( $btnNo == $exeBtn )) {
  501.         if( $btnNo == $setBtn ) {
  502.             $ret = 1;
  503.         } else {
  504.             $ret = 2;
  505.         }
  506.     } else {
  507.         $ret = 0;
  508.     }
  509.  
  510.     dialog.delButton( $setBtn  );
  511.     dialog.delButton( $canBtn  );
  512.     dialog.delButton( $exeBtn  );
  513.     dialog.delButton( $modmBtn );
  514.     dialog.delButton( $apBtn   );
  515.     dialog.delButton( $edtBtn  );
  516.     dialog.delButton( $delBtn  );
  517.     return( $ret );
  518. }
  519.  
  520.  
  521.  
  522. //---------------------------------//
  523. //---    接続環境データの更新    ---//
  524. //---------------------------------//
  525. function    Auto.updateConnectData(
  526.     $dataList,                                    // 設定情報リスト
  527.     $serial,                                    // シリアルナンバー
  528.     $agreement,                                    // アグリーメントナンバー
  529.     $prefix,                                    // 外線確立番号文字列
  530.     $cityNo,                                    // 自局市外局番
  531.     $port,                                        // ポート番号
  532.     $defAP,                                        // デフォルトアクセスポイント
  533.     $redial,                                    // リダイアル回数
  534.     $interval )                                    // リダイアル待ち時間
  535. {
  536.     list.delNth( $dataList, 27 );
  537.     list.putNth( $dataList, 26, $serial    );
  538.     list.delNth( $dataList, 28 );
  539.     list.putNth( $dataList, 27, $agreement );
  540.     list.delNth( $dataList, 24 );
  541.     list.putNth( $dataList, 23, $cityNo    );
  542.     list.delNth( $dataList, 1  );
  543.     list.putNth( $dataList, 0 , $port      );
  544.     list.delNth( $dataList, 25 );
  545.     list.putNth( $dataList, 24, $defAP     );
  546.     list.delNth( $dataList, 29 );
  547.     list.putNth( $dataList, 28, $redial    );
  548.     list.delNth( $dataList, 30 );
  549.     list.putNth( $dataList, 29, $interval  );
  550.     $portData = list.getNth( list.getNth( $dataList, 15 ), $port + 2 );
  551.     list.delNth( $portData, 4 );
  552.     list.putNth( $portData, 3, $prefix );
  553.  
  554.     return;
  555. }
  556.  
  557.  
  558.  
  559. //-----------------------------------------//
  560. //---    自動通信環境ファイル書き込み    ---//
  561. //-----------------------------------------//
  562. function    Auto.sgnSave(
  563.     $fName,                                // 設定ファイル名
  564.     $dataList )                            // 設定情報リスト
  565. {
  566.     //---   自動通信環境ファイルの削除   ---//
  567.     if( file.exist( $fName ) == #TRUE ) {
  568.         file.delete( $fName );
  569.     }
  570.  
  571.     //---   自動通信環境ファイルのオープン   ---//
  572.     $fd = file.open( $fName, "", 1 );
  573.     $i = 1;
  574.     loop {
  575.         table( $i ) {
  576.              1    { $data = list.getNth( $dataList, 22 );    }
  577.              2    { $data = list.getNth( $dataList, 23 );    }
  578.              3    { $data = list.getNth( $dataList,  2 );    }
  579.              4    { $data = #FALSE;                        }
  580.              5    { $data = #TRUE;                        }
  581.              6    { $data = list.getNth( $dataList, 10 );    }
  582.              7    { $data = list.getNth( $dataList,  1 );    }
  583.              8    { $data = list.getNth( $dataList,  9 );    }
  584.              9    { $data = list.getNth( $dataList, 26 );    }
  585.             10    { $data = list.getNth( $dataList, 11 );    }
  586.             11    { $data = list.getNth( $dataList, 12 );    }
  587.             12    { $data = list.getNth( $dataList, 13 );    }
  588.             13    { $data = list.getNth( $dataList, 17 );    }
  589.             14    { $data = list.getNth( $dataList, 18 );    }
  590.             15    { $data = list.getNth( $dataList, 31 );    }
  591.             16    { $data = list.getNth( $dataList, 19 );    }
  592.             17    { $data = list.getNth( $dataList, 20 );    }
  593.             18    { $data = list.getNth( $dataList, 32 );    }
  594.             19    { $data = list.getNth( $dataList, 21 );    }
  595.             20    { $data = list.getNth( $dataList, 24 );    }
  596.             21    { $data = list.getNth( $dataList, 25 );    }
  597.             22    { $data = list.getNth( $dataList, 27 );    }
  598.             23    { $data = list.getNth( $dataList, 28 );    }
  599.             24    { $data = list.getNth( $dataList, 29 );    }
  600.             25    { $data = list.getNth( $dataList, 30 );    }
  601.         }
  602.         if( data.getType( $data ) == #STRING ) {
  603.             $str = $data;
  604.         } else {
  605.             $str = data.toString( $data );
  606.         }
  607.         $str = str.join([$str, "\n"], "" );
  608.  
  609.         //---   書き込み   ---//
  610.         file.putString( $fd, $str );
  611.  
  612.         $i = $i + 1;
  613.         if( $i == 26 ) {
  614.             exit;
  615.         }
  616.     }
  617.     file.close( $fd );
  618.  
  619.     //---   データベース部分の書き込み   ---//
  620.     $portNo    = list.get1st( $dataList );
  621.     $portList1 = list.getNth( list.getNth( $dataList, 14 ), $portNo + 2 );
  622.     $portList2 = list.getNth( list.getNth( $dataList, 15 ), $portNo + 2 );
  623.     gdb.setPortData( $portNo, $portList1, $portList2 );
  624.  
  625. //    //---   プロファイルへの書き込み   ---//
  626. //    $prFname = char( sys.bootDrive?() + 0x41 );
  627. //    if( $prFname != "Q" ) {
  628. //        $prFname = str.join([$prFname, ":\\FMCITY\\GENERAL.INI"], "" );
  629. //        $prfId = prf.open( $prFname );
  630. //
  631. //        //---   保存ディレクトリの書き込み   ---//
  632. //        prf.writeString( $prfId, "PALCOM", "LOGPATH", 
  633. //                                        list.getNth( $$USER.DEFINED.3, 21 ));
  634. //
  635. //        //---   画面色の書き込み   ---//
  636. //        $wkList = [];
  637. //        foreach( $a, [list.getNth( $$USER.DEFINED.3, 17 ),
  638. //                      list.getNth( $$USER.DEFINED.3, 18 ),
  639. //                      list.getNth( $$USER.DEFINED.3, 31 )] ) {
  640. //            list.putLast( $wkList, data.toString( $a ));
  641. //        }
  642. //        $string = str.join( $wkList, "\t" );
  643. //        prf.writeString( $prfId, "PALCOM", "AUTOCOLOR", $string );
  644. //
  645. //        prf.close( $prfId );
  646. //    }
  647.     return;
  648. }
  649.  
  650.  
  651.  
  652. //----------------------------------------//
  653. //---   オンラインサインアップの実行   ---//
  654. //----------------------------------------//
  655. function    Auto.sgnExec(
  656.     $fName,                                        // 設定ファイル名
  657.     $dataList )                                    // 設定情報リスト
  658. {
  659.     dialog.openProg([[],"    初  期  設  定  中  で  す     ",[]],"",#FALSE );
  660.     sys.global( $OpenFlg );
  661.     $OpenFlg = #FALSE;
  662.  
  663.     //---   環境の設定を行う   ---//
  664.     if(( $ret = local.loadAutoEnv( $fName, "", #TRUE, 0, 0 )) == #FALSE ) {
  665.         return( #TRUE );
  666.     }
  667.  
  668.     //---   アクセスポイント情報の取得   ---//
  669.     $apId = trd.init( 9120, -1 );
  670.     $path = str.join([$$DIR.STANDARD, "PUBLIC\\APUSER.TRD"],"" );
  671.     trd.load( $apId, $path );
  672.     $apList = AUTO.getAPlist( $apId, list.getNth( $dataList, 25 ));
  673.     trd.end( $apId );
  674.     if( list.size( $apList ) == 0 ) {
  675.         dialog.close();
  676.         $saveXsize = dialog.getDefaultXSize();
  677.         dialog.setDefaultXSize( 352 );
  678.         sys.pushCursor( 80 );
  679.         dialog.ask(["━━━━━━━  オンラインサインアップ  ━━━━━━━",
  680.                     "",
  681.                     "  設定されているアクセスポイントの情報が存在しません。",
  682.                     "  アクセスポイントの設定を再度行ってください。        ",
  683.                     ""],["確認"] );
  684.         sys.popCursor();
  685.         dialog.setDefaultXSize( $saveXsize );
  686.         return( #TRUE );
  687.     }
  688.     $apList = list.get1st( $apList );
  689.  
  690.     //---   電話番号の組み立て   ---//
  691.     $telNo = "";
  692.     if(( list.getNth( $apList, 2 ) != list.getNth( $dataList, 24 ))&&
  693.        ( list.getNth( $apList, 2 ) != "" )) {
  694.         $telNo = str.join([list.getNth( $apList, 2 ), "-"], "" );
  695.     }
  696.     $telNo = str.join([$telNo, list.getNth( $apList, 6 )], "" );
  697.  
  698.     //---   MNP 設定の有効/無効チェック   ---//
  699.     $mnpFlg = #FALSE;
  700.     foreach( $a, list.getNth( $apList, 5 )) {
  701.         if( $a == "MNP" ) {
  702.             $mnpFlg = #TRUE;
  703.             exit;
  704.         }
  705.     }
  706.  
  707.     //---   オンラインサインアップでローカルな設定値の設定   ---//
  708.     $$BBS.TEL1        = $telNo;
  709.     $$MDM.EC          = $mnpFlg;
  710.     $$BBS.REDIAL      = list.getNth( $dataList, 29 );
  711.     $$BBS.REDIAL.WAIT = list.getNth( $dataList, 30 );
  712.     $$TRM.SET.RSTABLE = #FALSE;
  713.     $$BBS.ID          = list.getNth( $dataList, 27 );
  714.     $$BBS.PASSWORD    = list.getNth( $dataList, 28 );
  715.     if(( gdb.getMnpClass( $$COM.PORT ) >= 5 )&&( $mnpFlg == #TRUE )) {
  716.         table( list.getNth( list.getNth( $apList, 7 ), 2 )) {
  717.             1 { $$COM.BAUD = 1200;    }
  718.             2 { $$COM.BAUD = 2400;    }
  719.             3 { $$COM.BAUD = 4800;    }
  720.             4 {    $$COM.BAUD = 4800;    }
  721.             5 { $$COM.BAUD = 9600;    }
  722.             6 { $$COM.BAUD = 9600;    }
  723.             7 { $$COM.BAUD = 9600;    }
  724.             8 {    $$COM.BAUD = 19200;    }
  725.         }
  726.     } else {
  727.         $comBps = gdb.getComBps( $$COM.PORT );
  728.         table( list.getNth( list.getNth( $apList, 7 ), 2 )) {
  729.             1 { $$COM.BAUD = 300;    }
  730.             2 { $$COM.BAUD = 1200;    }
  731.             3 { $$COM.BAUD = 2400;    }
  732.             4 {
  733.                 if( $comBps & 0x08 ) {
  734.                     $$COM.BAUD = 2400;
  735.                 } else {
  736.                     $$COM.BAUD = 1200;
  737.                 }
  738.             }
  739.             5 { $$COM.BAUD = 9600;    }
  740.             6 { $$COM.BAUD = 9600;    }
  741.             7 { $$COM.BAUD = 9600;    }
  742.             8 {
  743.                 if( $comBps & 0x0100 ) {
  744.                     $$COM.BAUD = 19200;
  745.                 } else {
  746.                     $$COM.BAUD = 9600;
  747.                 }
  748.             }
  749.         }
  750.     }
  751.     event.mask( @DISCONNECT );
  752.     event.mask( @CONNECT );
  753.     sys.stopIntRec();
  754.     dialog.close();
  755.  
  756.     //---   ダイアルスクリプト起動   ---//
  757.     $path = str.join([$$DIR.STANDARD, "SCRIPT\\MANUDIAL.MX"], "" );
  758.     script.openExtern( $path, #FALSE, [] );
  759.     if( $$USER.DEFINED.9 != #TRUE ) {
  760.         sys.startIntRec();
  761.         $retCode = #TRUE;
  762.         goto DISCONNECT;
  763.     }
  764.     $OpenFlg = #TRUE;
  765.  
  766.     //---   自動ログイン(オンラインサインアップ)スクリプト起動   ---//
  767.     $path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\NIFSGN.MX"], "" );
  768.     table( list.getNth( $apList, 3 )) {
  769.         "ROAD1"        { $$USER.DEFINED.9 = 1; }
  770.         "ROAD2"        { $$USER.DEFINED.9 = 2; }
  771.         "ROAD3"        { $$USER.DEFINED.9 = 3; }
  772.         "ROAD4"        { $$USER.DEFINED.9 = 4; }
  773.     }
  774.     script.openExtern( $path, #FALSE, [] );
  775.     if( $$USER.DEFINED.9 != #TRUE ) {
  776.         sys.startIntRec();
  777.         local.comClose();
  778.         $backXsize = dialog.getDefaultXSize();
  779.         dialog.setDefaultXSize( 228 );
  780.         sys.pushCursor( 80 );
  781.         if( $$USER.DEFINED.9 == #ERROR ) {
  782.             dialog.ask(["━━  オンラインサインアップ  ━━",
  783.                         "",
  784.                         "    自動ログインに失敗しました。  ",
  785.                         ""],["確認"] );
  786.         } elif( $$USER.DEFINED.9 == #TOUT ) {
  787.             dialog.ask(["━━  オンラインサインアップ  ━━",
  788.                         "",
  789.                         "  センターが混雑しているため接続を",
  790.                         "中断しました。                    ",
  791.                         "  時間をおいて再度接続して下さい。",
  792.                         ""],["確認"] );
  793.         } else {
  794.             dialog.ask(["━━  オンラインサインアップ  ━━",
  795.                         "",
  796.                         "    自動ログインを中断しました。  ",
  797.                         ""],["確認"] );
  798.         }
  799.         sys.popCursor();
  800.         dialog.setDefaultXSize( $backXsize );
  801.         $retCode = #TRUE;
  802.         goto DISCONNECT;
  803.     }
  804.  
  805.     sys.enableMenu( #TRUE );
  806.     sys.enableButton( #TRUE );
  807.     sys.pushCursor( 80 );
  808.  
  809.     if( $setDataList != #FALSE ) {
  810.         sys.pushCursor( 80 );
  811.         dialog.openProg([[],"    自 動 サ イ ン ア ッ プ 実 行 中     ",[]],
  812.                                                             " 中断 ", #FALSE );
  813.  
  814.         $$USER.DEFINED.9 = $setDataList;
  815.         $path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\SGNCOM.MX"], "" );
  816.         script.openExtern( $path, #FALSE, [] );
  817.         if( $$USER.DEFINED.9 == #FALSE ) {            // 中断した
  818.             dialog.close();
  819.             sys.popCursor();
  820.             sys.popCursor();
  821.             $retCode = #FALSE;
  822.             goto DISCONNECT;
  823.         } elif( $$USER.DEFINED.9 == #ERROR ) {        // エラー終了
  824.             sys.popCursor();
  825.             $retCode = #ERROR;
  826.             goto DISCONNECT;
  827.         }
  828.     } else {
  829.         //---   ツールバーに終了ボタンを表示する   ---//
  830.         obj.setButton( 1, #SYSTEM, "BTN_SGN_LINECUT" );
  831.     }
  832.  
  833.     //---   回線が切断されるまでループする   ---//
  834.     $ret = 0;
  835.     $id  = "";
  836.     $pw  = "";
  837.     $priority.fore = $$PRIORITY.FORE;
  838.     $priority.back = $$PRIORITY.BACK;
  839.     $$PRIORITY.FORE = 0;
  840.     $$PRIORITY.BACK = 0;
  841.     comtable( $a, 0 ) {
  842.         "01+"            { local.comClose();                }
  843.         "*\w\w"            {
  844.             time.delay( 1 );
  845.             com.putString( "OFF\r",[] );
  846.         }
  847.         "利用者IDは、\n"    {
  848.             $id = com.getString( 0, #TRUE, #TRUE );
  849.             $id = str.replaceAll( $id, " ",  "" );
  850.             $id = str.replaceAll( $id, " ", "" );
  851.             $id = str.replaceAll( $id, "です。\n", "" );
  852.             $id = str.zenToHan( $id );
  853.             $ret = $ret + 1;
  854.         }
  855.         "パスワードは、\n"    {
  856.             $pw = com.getString( 0, #TRUE, #TRUE );
  857.             $pw = str.replaceAll( $pw, " ",  "" );
  858.             $pw = str.replaceAll( $pw, " ", "" );
  859.             $pw = str.replaceAll( $pw, "です。\n", "" );
  860.             $pw = str.zenToHan( $pw );
  861.             $ret = $ret + 1;
  862.         }
  863.         "改行キーを押して下さい\n>\w\w"    {
  864.             com.putString("\r", [] );
  865.         }
  866.         "Enter User-ID  --->\w\w"    {
  867.             com.putString( str.join([$id, "\r"], "" ), [] );
  868.         }
  869.         "Enter Password --->\w\w"    {
  870.             com.putString( str.join([$pw, "\r"], "" ), [] );
  871.         }
  872.         "--登録終了--"    {
  873.             $ret = $ret + 1;
  874.         }
  875.         ":\w\w"    {
  876.             if( $ret == 3 ) {
  877.                 com.putString( "E\r", [] );
  878.             }
  879.         }
  880.         interval    {
  881.             if( com.isCD( $$COM.PORT ) == #FALSE ) {
  882.                 $OpenFlg = #FALSE;
  883.                 exit;
  884.             }
  885.         }
  886.     }
  887.     $$PRIORITY.FORE = $priority.fore;
  888.     $$PRIORITY.BACK = $priority.back;
  889.     sys.disableButton( #TRUE );
  890.     sys.disableMenu( #TRUE );
  891.  
  892.     //---   ボタン消去   ---//
  893.     obj.setButton( 0, #SYSTEM, "BTN_SGN_LINECUT" );
  894.  
  895.     //---   後始末   ---//
  896. DISCONNECT:
  897.     if( dialog.check() == #TRUE ) {
  898.         dialog.close();
  899.         sys.popCursor();
  900.     }
  901.     sys.popCursor();
  902.     if( com.isDTR( $$COM.PORT ) == #TRUE ) {
  903.         local.comClose();
  904.     }
  905.     $OpenFlg = #FALSE;
  906.     sys.local( $OpenFlg );
  907.     sys.startIntRec();
  908.     local.restoreAutoEnv();
  909.     event.unmask( @DISCONNECT );
  910.     event.unmask( @CONNECT );
  911.     if( $ret == 3 ) {
  912.         return( [$id, $pw] );
  913.     } else {
  914.         return( $retCode );
  915.     }
  916. }
  917.  
  918.  
  919.  
  920. //--------------------------------------//
  921. //---   登録情報ファイルの読み込み   ---//
  922. //--------------------------------------//
  923. function    Auto.readEditData(
  924.     $fName )                                    // ファイル名
  925. {
  926.     $fp = file.open( $fName, "", 1 );
  927.     $dataList2 = [];
  928.     $i = 1;
  929.     loop {
  930.         $str = file.getString( $fp );
  931.         if( $str == #FALSE ) {
  932.             $saveXsize = dialog.getDefaultXSize();
  933.             dialog.setDefaultXSize( 288 );
  934.             sys.pushCursor( 80 );
  935.             dialog.ask(["━━━━━━  登録情報の設定  ━━━━━━",
  936.                         "",
  937.                         "  保存されている設定の内容に異常があります。",
  938.                         "  現在設定されている内容を消去します。      ",
  939.                         ""],["確認"] );
  940.             sys.popCursor();
  941.             dialog.setDefaultXSize( $saveXsize );
  942.             file.close( $fp );
  943.             file.delete( $fName );
  944.             return( #FALSE );
  945.         }
  946.         list.putLast( $dataList2, str.replaceAll( $str, "\n", "" ));
  947.         $i = $i + 1;
  948.         if( $i == 25 ) {
  949.             exit;
  950.         }
  951.     }
  952.     file.close( $fp );
  953.     return( $dataList2 );
  954. }
  955.